home *** CD-ROM | disk | FTP | other *** search
/ The Very Best of Atari Inside / The Very Best of Atari Inside 1.iso / mint / mntlb20 / lib / ltoa.c < prev    next >
C/C++ Source or Header  |  1991-04-13  |  849b  |  52 lines

  1. #include <string.h>
  2.  
  3. #ifdef __STRICT_ANSI__
  4. #  ifdef __GNUC__
  5.     char * strrev(char *);
  6. #  else
  7.     extern char * strrev();
  8. #  endif
  9. #endif
  10.  
  11. char    _numstr[] = "0123456789ABCDEF";
  12.  
  13. char *_ultoa(n, buffer, radix)
  14.     register unsigned long n;
  15.     register char *buffer;
  16.     register int radix;
  17.     {
  18.     register char *p = buffer;
  19.  
  20.     do
  21.         {
  22.         *p++ = _numstr[n % radix];    /* grab each digit */
  23.         }
  24.         while((n /= radix) > 0);
  25.     *p = '\0';
  26.     return(strrev(buffer));            /* reverse and return it */
  27.     }
  28.  
  29. char *_ltoa(n, buffer, radix)
  30.     register long n;
  31.     register char *buffer;
  32.     int radix;
  33.     {
  34.     register char *p = buffer;
  35.  
  36.     if (n < 0)
  37.         {
  38.         *p++ = '-';
  39.         n = -n;
  40.         }
  41.       _ultoa(n, p, radix);
  42.     return(buffer);
  43.     }
  44.  
  45. char *_itoa(n, buffer, radix)
  46.     int n;
  47.     char *buffer;
  48.     int radix;
  49.     {
  50.     return(_ltoa(((long) n), buffer, radix));
  51.     }
  52.